home *** CD-ROM | disk | FTP | other *** search
/ 3D Game Programming All in One / 3D Game Programming All in One Disc.iso / 3D2E / RESOURCES / KOOB / common / client / screenshot.cs < prev    next >
Encoding:
Text File  |  2005-11-23  |  2.1 KB  |  81 lines

  1. //-----------------------------------------------------------------------------
  2. // Torque Game Engine 
  3. // Copyright (C) GarageGames.com, Inc.
  4. //-----------------------------------------------------------------------------
  5.  
  6.  
  7. function formatImageNumber(%number)
  8. {
  9.    if(%number < 10)
  10.       %number = "0" @ %number;
  11.    if(%number < 100)
  12.       %number = "0" @ %number;
  13.    if(%number < 1000)
  14.       %number = "0" @ %number;
  15.    if(%number < 10000)
  16.       %number = "0" @ %number;
  17.    return %number;
  18. }
  19.  
  20. function formatSessionNumber(%number)
  21. {
  22.    if(%number < 10)
  23.       %number = "0" @ %number;
  24.    if(%number < 100)
  25.       %number = "0" @ %number;
  26.    return %number;
  27. }
  28.  
  29.  
  30. //----------------------------------------
  31. function recordMovie(%movieName, %fps)
  32. {
  33.    $timeAdvance = 1000 / %fps;
  34.    $screenGrabThread = schedule($timeAdvance,0,movieGrabScreen,%movieName,0);   
  35. }
  36.  
  37. function movieGrabScreen(%movieName, %frameNumber)
  38. {
  39.    screenshot(%movieName @ formatImageNumber(%frameNumber) @ ".png");
  40.    $screenGrabThread = schedule($timeAdvance, 0, movieGrabScreen, %movieName, %frameNumber + 1);   
  41. }
  42.  
  43. function stopMovie()
  44. {
  45.    $timeAdvance = 0;
  46.    cancel($screenGrabThread);
  47. }
  48.  
  49.  
  50. //----------------------------------------
  51. $screenshotNumber = 0;
  52.  
  53. function doScreenShot( %val )
  54. {
  55.    if (%val)
  56.    {
  57.       if ($pref::Video::screenShotSession $= "")
  58.          $pref::Video::screenShotSession = 0;
  59.       if ($screenshotNumber == 0)
  60.          $pref::Video::screenShotSession++;
  61.       if ($pref::Video::screenShotSession > 999)
  62.          $pref::Video::screenShotSession = 1;
  63.        
  64.       $pref::interior::showdetailmaps = false;
  65.       $name = "screenshot_" @ formatSessionNumber($pref::Video::screenShotSession) @ "-" @ formatImageNumber($screenshotNumber++);
  66.       
  67.       if($pref::Video::screenShotFormat $= "JPEG")
  68.          screenShot($name @ ".jpg", "JPEG");
  69.       else 
  70.          if($pref::Video::screenShotFormat $= "PNG")
  71.             screenShot($name @ ".png", "PNG");
  72.            else
  73.             screenShot($name @ ".png", "PNG");
  74.    }
  75. }
  76.  
  77.  
  78. // bind key to take screenshots
  79. GlobalActionMap.bind(keyboard, "ctrl p", doScreenShot);
  80.  
  81.